1. Technical Field
The present invention generally relates to data processing systems and in particular to thread management in data processing systems.
2. Description of the Related Art
A growing number of microprocessor systems contain a feature called simultaneous multi-threading. This multi-threading feature allows a microprocessor core to execute two distinct instruction streams at the same time. Operating within a multi-threading environment is a set of important applications built on a model by which an individual application provides some level of multi-tasking. These applications usually have a dispatching mechanism which schedules tasks on central processing units (CPUs). In a way, these applications bypass typical UNIX/Linux (single threaded) process models to achieve some gains in efficiency. Two such application examples are Sybase Adaptive Server Enterprise (ASE) and Systems Applications Products (SAP).
These applications which operate in a multi-threading environment generally utilize non-blocking system calls. The applications employ non-blocking system calls, for example, poll( ) or select( ), as a way to determine the level of management required for incoming network traffic. These applications generally use a significant amount of processing for implementing poll( ) or select( ) system calls even when the system calls are partially loaded. However, the execution of these poll( ) select( ) system calls is generally unproductive, as repeated calls are utilizing CPU cycles that may be applied more efficiently.